Method and system for virtual multicast networking

ABSTRACT

Method and system for virtual multicast networking, which can provide multicasting application service on non-multicast network that does not support multicast, are provided. A virtual multicast networking system for providing virtual multicast network on network environment where a multicast data source network to which multicast data source server is connected is linked through backbone network to non-multicast network that does not support multicast and to which a client is connected, the virtual multicast networking system includes: virtual multicast router system, included in the non-multicast network, for routing or relaying multicast data through tunnelling to multicast router or the nearest virtual multicast router system; multicast agent system, mounted on the client, for receiving the multicast data through tunnelling to the nearest virtual multicast router system, and transmitting the received multicast data to application program mounted on the client; and multicast management system, included in the multicast data source network, for managing the IP address of the virtual multicast router system and transmitting the IP address information of the virtual multicast router system to the virtual multicast router system or the multicast agent system.

TECHNICAL FIELD

The present invention relates to a multicasting technology in anInternet broadcasting system; and, more particularly, to a virtualmulticast networking method for establishing a multicast network withoutchanging existing routers or switches on the Internet, and a systemthereof.

BACKGROUND ART

Conventional data transmission method on the Internet is peer-to-peertransmission or unicast transmission, in which data are transmitted fromone sending end to one receiving end. However, in case where multicastdata transmission is performed in the unicasting method to transmit thesame data to many receiving ends, there are problems that the server ofthe sending has a great deal of load, and the bandwidth of the networkis occupied inefficiently.

Furthermore, the problems with performing multicast transmission in theunicasting method become more serious, because the next-generationInternet is based on multimedia data transmission, and the volume ofmultimedia data is very big.

If the problem with the unicasting method is solved, it is possible tobroadcast multimedia data stream, such as video and audio data. Inshort, although a stream of multimedia data is outputted from a sendingend, i.e., media server, once through the Internet, the data stream canbe transmitted to all the clients (of a multicast group), which arefinal receiving ends that desire to receive the data stream,selectively, which is multicast technology. When data is transmittedfrom the sending end, each client of the multicast group that desires toreceive the data can receive the same duplication of the data.

Multicast technology is a mixture of the advantages of unicasting andbroadcasting technologies. It enhances the network efficiency andreduces the confusion of a network. Since it duplicates data andtransmits the duplicated data to the receiving ends that desire toreceive the data, i.e., ones that belong to the multicast group, itprevents unnecessary data reception. Accordingly, an Internet serviceprovider can convert its network into a multicast network usingmulticast equipment adopting the multicasting technology.

On a multicast network, broadcast data can be transmitted as many as thebandwidth allows on the network, no matter how many clients areconnected thereto. For instance, if the allowed bandwidth of a cable TVnetwork is 30 Mbps, 30 one-Mbps broadcast data or 60 500-Kbps broadcastdata can be transmitted.

Despite the advantages of multicasting technology, there are manyrestrictions in converting the existing Internet into a multicastnetwork. For instance, networking equipment that constitutes theInternet does not support the multicasting function, and it costs a lotof money to substitute the equipment with multicast-supportingequipment.

FIG. 1 is a diagram showing a conventional multicast network using astatic tunneling technique. So far, to support the multicastingfunction, all the routers between the media server 101, i.e., sendingend, and the clients 103, i.e., the final receiving ends should supportthe multicasting technology. So, if there are networks 105 and 107 thatdo not support the multicasting function in between, tunneling methodshould be used.

According to the conventional tunneling method, when ac router 105between the sending end and the receiving end does not support themulticast function, a virtual path is formed betweenmulticast-supporting routers 109 to exchange multicast data, and therouter 105 that does not support the multicasting function simply relaythe multicast data. Between the multicast-supporting routers 109connected through the tunneling method, the multicast data isencapsulated in the form of a unicast IP packet and transmitted to theencapsulated multicast data by adding a header containing a tunnelsource address and a tunnel destination address. So, it has no problemto pass the router 105 that does not support the multicasting function.

The conventional tunneling method is a static technique, so themulticasting function should be set up in the router 109 manually.Accordingly, the router 109 on the part of the media server 101, thesending end, and the router 109 on the part of the client 103 thatrequires multicasting should be set up with the multicasting function,which acts as a big burden for the Internet service provider, because itshould respond to every request for multicast setup from a plurality ofclients 103 that desire to receive multicast data.

Furthermore, recent increasing demand for establishing a home networkleads to increasing request for multicast service. However, since mostclients 103 use flexible IP addresses, it is impossible to establish amulticast network using a static tunneling method. In short, a fixed IPaddress is needed in order to set up the multicasting function in arouter and perform static tunneling, but if a client has a flexible IPaddress, the multicasting function cannot be set up-in the router.

FIG. 2 is a diagram illustrating a conventional multicast network usinga peer-to peer (P2P) transmission technique. Since it becomes hard tomodify the scheme of a router, a multicast method is developed recentlythat makes other clients receive data by making a client, which hasreceived the data from the sending end in the unicasting method, uploadthe received data on the Internet and relay the data to other clients.

According to the multicasting method, a client 213 receives data fromthe data transmission server 207 of a network 201 having a data source205 in the unicasting method, and the client 213 uploads the receiveddata on the network 203, to which it belongs, and then other clients 215and 217 on the network receive the data from the client 213.

In short, when a client of a network receives data, the client performsas a repeater and thereby other client on the same network can receivethe data.

As networks are mainly formed of routers and many routers and switchessupport the multicasting function recently, using the routers to themaximum extent makes it easy to administrate the network and reduceserrors. However, this multicasting method also have a problem that theperformance is deteriorated due to the limit in the upload speed on anasymmetric network, such as xDSL or cable network.

DISCLOSURE OF INVENTION

It is, therefore, an object of the present invention to provide a methodand system for virtual multicast networking that can make clientsreceive multicast data even on a network that does not supportmulticasting function, without substituting or modifying networkingequipment.

Those skilled in the art of this invention may understand the otherobjects and advantages of the present invention easily from thedrawings, detailed description, and claims of this specification.

In accordance with one aspect of the present invention, there isprovided a virtual multicast networking system including a client and amulticast source network having a multicast source server, for providinga virtual multicast network in a network environment wherein anon-multicast network that does not support a multicast function isconnected through a backbone network, the virtual multicast networkingsystem comprising: a virtual multicast router system included in thenon-multicast network, for transmitting or relaying encapsulatedmulticast data through tunneling with a multicast router or the nearestvirtual multicast router system; a multicast agent system loaded on theclient, for receiving the encapsulated multicast data through dynamictunneling with the nearest virtual multicast router system, extractingthe multicast data transmitted by the multicast source server from theencapsulated multicast data, and transmitting the extracted multicastdata to an application program loaded on the client; and a multicastadministration system included in the multicast source network, formanaging the IP addresses of the virtual multicast router system, andtransmitting the address information of the virtual multicast routersystem to the virtual multicast router system or the multicast agentsystem.

In accordance with another aspect of the present invention, there isprovided a method for performing virtual multicast networking in avirtual multicast networking system, the method comprising the steps of:a) at a virtual multicast router system included in the non-multicastnetwork, transmitting or relaying encapsulated multicast data throughtunneling with a multicast router or the nearest virtual multicastrouter system; b) at a multicast agent system loaded on the client,receiving the encapsulated multicast data through dynamic tunneling withthe nearest virtual multicast router system, extracting the multicastdata transmitted from the multicast source server from the receivedencapsulated multicast data, and transmitting the extracted multicastdata to an application program loaded on the client; and c) at amulticast administration system included in the multicast sourcenetwork, managing the IP addresses of the virtual multicast routersystem, and transmitting the address information of the virtualmulticast router system to the virtual multicast router system or themulticast agent system.

In accordance with further anther aspect of the present invention, thereis provided a virtual multicast networking system including a client anda multicast source network having a multicast source server, forproviding a virtual multicast network in a network environment wherein anon-multicast network that does not support a multicast function isconnected through a backbone network, the virtual multicast networkingsystem comprising: a virtual multicast router system included in thenon-multicast network, for transmitting or relaying encapsulatedmulticast data through tunneling with a multicast router or the nearestvirtual multicast router system; and a multicast agent system loaded onthe client, for receiving the encapsulated multicast data throughdynamic tunneling with the nearest virtual multicast router system,.extracting the multicast data transmitted from the multicast sourceserver from the encapsulated multicast data, and transmitting theextracted multicast data to an application program loaded on the client.

According to this invention, it is possible to provide multicast serviceon a network that does not support multicasting function. A networkingsystem in accordance with the embodiment of the present inventionincludes a multicast administration server, a virtual multicast routerand a multicast agent.

The multicast administration server administrates IP addresses of therespective multicast routers, and the addresses are used for themulticast administration server to search for an arbitrary virtualmulticast router or a virtual multicast router closest to the multicastagent. The IP address of a virtual multicast router searched out lateris cached in the multicast administration server for quick search;

The virtual multicast router performs multicast routing, and transmitsmulticast data to users on a network that does not support multicasting.

The virtual multicast router can be connected to another virtualmulticast router through dynamic tunneling. Accordingly, a virtualmulticast network can be established on a network that does not supportmulticasting, without any separate setup in the network scheme.

According to the embodiment of the present invention, a multicast agentis set up in the client to transmit and receive multicast data throughthe virtual multicast router.

BRIEF DESCRIPTION OF DRAWINGS

The above and other objects and features of the present invention willbecome apparent from the following description of the preferredembodiments given in conjunction with the accompanying drawings, inwhich:

FIG. 1 is a diagram illustrating a multicast network to which aconventional static tunneling is applied;

FIG. 2 is a diagram showing a multicast network to which a conventionalpeer-to-peer transmission technique is applied;

FIG. 3 is a diagram describing a virtual multicast network in accordancewith a first embodiment of the present invention;

FIG. 4 is a block diagram showing the system of the virtual multicastnetwork of FIG. 3 in accordance with the first embodiment of the presentinvention;

FIG. 5 is a transaction flow chart describing the dynamic tunnelingbetween the multicast routers in accordance with the first embodiment ofthe present invention;

FIG. 6 is a transaction flow chart describing a multicast agentreceiving the multicast data in accordance with the first embodiment ofthe present invention; and

FIG. 7 is a diagram showing the process of a multicast agent or avirtual multicast router searching for the nearest virtual multicastrouter in accordance with a second embodiment of the present invention.

BEST MODE FOR CARRYING OUT THE INVENTION

Other objects and aspects of the invention will become apparent from thefollowing description of the embodiments with reference to theaccompanying drawings, which is set forth hereinafter. The samereference numerals in different drawings represent the same elements,and thus their descriptions will be omitted. While describing thisinvention, if more concrete description of the related arts isconsidered to blur the point of this invention, the description will beomitted.

An asymmetric digital subscriber line (ADSL) network illustrated in thedrawings to describe an embodiment of the present invention is a networkthat does not support multicasting. It is obvious to those skilled inthe art of this invention that the ADSL network as shown in the drawingscan be variously changed into another form of a network that does notsupport multicasting, either, such as integrated services digitalnetwork (ISDN), cable network, and radio network. Therefore, thisinvention should be construed not limited to the ADSL networkillustrated in the drawings.

FIG. 3 is a diagram describing a virtual multicast network in accordancewith a first embodiment of the present invention. As illustrated in thedrawing, the application environment of the virtual multicast networkingmethod and system of the present invention includes a multicast sourcenetwork 300 connected to a backbone network 310 in support of themulticasting function or a backbone network 320 that does not supportthe multicasting function.

The multicast source network 300 includes a multicast source, which is amedia server 301, a multicast administration server 303, a virtualmulticast router 305, and a multicast router 307. In case where abackbone network supports the multicasting function, the multicastrouter 307 operates to connect the multicast source network 300 to thebackbone network 310 in support of the multicasting function. On theother hand, the virtual multicast router 305 operates to connect themulticast source network 300 to the backbone network 320 that does notsupport the multicasting function, in case where a backbone networksupports the multicasting function. Accordingly, it is obvious to thoseskilled in the art that the virtual multicast router 305 and/or themulticast router 307 may be set up together or separately, according tothe environment of a backbone network connected with the multicastsource network 300.

The multicast administration server 303 administrates the IP addressesof virtual multicast routers. Later, the multicast administration server303 searches the IP addresses of all virtual multicast routers to findout the nearest virtual multicast router.

In case of the backbone network 310 supporting the multicast function,the virtual multicast router can be set up on an xDSL network, or in ahome gateway of a home network.

In case of the backbone network 320 not supporting the multicastfunction, the virtual multicast router can be set up on the multicastsource network 300 and the xDSL network to form a multicast networkthrough dynamic tunneling.

In short, the virtual multicast networking in accordance with thepresent invention can be formed in two different environments, and in anenvironment combining the two environments.

First, there is a case where the multicast-supporting backbone network310 is connected to a non-multicast networkor example, an ADSL network33 through a non-multicast router 331. Most ADSL networks do not supportthe multicasting function.

The ADSL network 330 includes a virtual multicast router 335 of thepresent invention, and a plurality of clients 339 are connected to anADSL network 330 through an ADSL server (b-RAS) 333 and ADSL servicedevice (DSLAM) 337. That is, in accordance with the embodiment of thepresent invention, the virtual multicast router 335 is set up on a subnetwork, such as b-RAS 333 that forms the ADSL network 330, to supportmulticasting.

The multicast router included in the multicast source network 300 andthe virtual multicast router in the ADSL network 330 transmits andreceives multicast data through static tunneling. For static tunneling,an IP tunneling technique may be used, and as multicast routingprotocol, protocol independent multicast-sparse mode (PIM-SM), distancevector multicast routing protocol (DVMRP), or source specific multicast(SSM) can be used. To perform the static tunneling, tunneling setup datais set up in advance in the configuration file of the routers 307 and335.

To receive multicast data transmitted from the multicast source network300, the clients 339 searches for the nearest virtual multicast router335 from the multicast administration server 303, and then registers theaddress of the nearest virtual multicast router 335 in the multicastgroup (Dynamic tunneling).

When the virtual multicast router 335 receives data heading for theaddresses of the multicast group, it encapsulates the data and transmitsthe encapsulated data to the multicast agent of the registered clients339 through the path set up by the tunneling method. The multicast agentremoves the header containing the tunnel source address and the tunneldestination address from the encapsulated multicast data, and thentransmits the multicast data to an application program set up in theclients 339.

The tunneling between the virtual multicast router 335 and the multicastagents of the clients registered in the multicast group, and the methodof data transmission through a path set up by the tunneling are variousbased on the environment of networks, to which the virtual multicastrouter receiving the multicast data or the multicast agent belongs to.For example, a tunneling set up from the virtual multicast router 335 toa virtual multicast router of a non-multicast network or a multicastagent may be IP tunneling, UDP tunneling, or TCP tunneling. The methodof data transmission through a path set up by this tunneling method maybe IP multicast transmission or UDP/TCP unicast transmission. In casewhere the virtual multicast router or multicast agent is in a networkaddress translator (NAT) or firewall environment, multicast data aretransmitted by the TCP tunneling, and in other cases, they aretransmitted by the UDP tunneling.

Second, there is a case where the non-multicast backbone network 320 isconnected to a non-multicast network—for example, an ADSL network340—through a non-multicast router 341. The ADSL network 340 includes avirtual multicast router 34 of the present invention, and a plurality ofclients 349 are connected to the ADSL network 340 through the ADSLserver (b-RAS) 343 and ADSL service device (DSLAM) 347. That is, inaccordance with the first embodiment of the present invention, thevirtual multicast router 345 is set up on a sub network, such as b-RAS343 that forms the ADSL network 340, to support the multicast.

A home network 350 includes a home network gateway 351 connected to thenon-multicast router 341, a TV set 353, which is a home network client,a desktop computer 355, a video camera 357, and a laptop computer 359.

The virtual multicast router of the present invention can be used as anexclusive hardware system that performs the role of a multicast routerin a non-multicast network, such as xDSL, or a server software in thehome network gateway 351 needed to establish a home network.

The virtual multicast router 345 or 351 sets up a data path with thevirtual multicast router 305 included in the multicast source network300 by performing dynamic tunneling to form a virtual multicast network.Also, the dynamic tunneling is carried out between the virtual multicastrouters 345 and 351, too, to provide multicast service to the homenetwork environment 350.

When the virtual multicast router 345 or 351 receives multicast datafrom the multicast source network 300, it transmits the multicast datato the clients 349, 355, and 359 registered in the multicast group.

Third, there is a case where the non-multicast backbone network 320 isconnected to a multicast-supporting network through the virtualmulticast router of the present invention (not shown). In this case, thevirtual multicast router sets up a data path with the virtual multicastrouter 305 in the multicast source network 300 by performing dynamictunneling. The router and clients on a multicast-supporting network canreceive data transmitted in a multicast method from the virtualmulticast router that are connected with a backbone network and has apath that leads to the virtual multicast router 305, the path being setup in the dynamic tunneling method. For instance, the router and clientsof a multicast-supporting network receives data transmitted in the IPmulticasting method from the virtual multicast router that are connectedWith a backbone network and has a path that leads to the virtualmulticast router 305, the path being set up in the dynamic tunnelingmethod.

In short, the virtual multicast router of the present invention can setup a data transmission path by performing tunneling in various methodsaccording to the environment of its sub-network, and on the other hand,it can also transmit encapsulated data to the virtual multicast routeror multicast agent in various data transmission methods.

FIG. 4 is a block diagram showing the system of the virtual multicastnetwork of FIG. 3. In accordance with the first embodiment of thepresent invention, the multicast networking system includes themulticast administration server 303, virtual multicast router 305, 335,345, and 351, and multicast agent 423.

The multicast administration server 303 includes a virtual multicastrouter data administration unit 401 and a database 403. The virtualmulticast router data administration unit 401 administrates the IPaddress of the virtual multicast router, and upon receipt of a requestfor searching IP addresses of the virtual multicast routers 305, 335,345, and 351 transmitted from a multicast agent 423 or the virtualmulticast routers 305, 335, 345, and 351, it refers to the IP addressesof the virtual multicast routers stored in the database 403, andsearches for the nearest virtual multicast router 305, 335, 345, or 351from the virtual multicast routers 305, 335, 345, and 351. The searchresult is transmitted to a corresponding multicast agent 423 or thevirtual multicast routers 305, 335, 345, and 351.

In general, since the multicast agent 423 of the clients and the virtualmulticast routers 305, 335, 345, and 351 search for the nearest virtualmulticast router 305, 335, 345, or 351 by calculating hop counters, thenearest virtual multicast router 305, 335, 345, or 351 is always thesame. In this case, it takes very long time to set up a path and, thebandwidth of the network is wasted due to unnecessary data transmission,because IP addresses of all the virtual multicast routers should betransmitted from the multicast administration server 303 and then thenearest virtual multicast router should be searched for to set up a pathevery time.

To perform searching and set up a path quickly, the multicastadministration server 303 forms a caching table of the IP addresses andnetwork addresses of the multicast agent 423 which has requestedsearching or virtual multicast routers 305, 335, 345, and 351, and theIP address of a virtual multicast router that is searched out to be thenearest one from the multicast agent 423 or virtual multicast routers305, 335, 345, and 351, and store the caching table in the database 403.The caching table reduces time for setting up a path of the multicastagent 423 or virtual multicast routers 305, 335, 345, and 351 throughdynamic tunneling by performing quick searching, and preventsunnecessary data transmission.

The virtual multicast routers 305, 335, 345, and 351 includes atunneling unit 415 for performing static and/or dynamic tunnelingbetween general multicast routers or virtual multicast routers, amulticast routing unit 411, and a multicast relaying unit 413.

The virtual multicast routers 305, 335, 345 can be formed as anexclusive hardware virtual multicast router that can embody multicastnetworking with respect to a non-multicast network 330, 340, or 350, orin the home networking environment, it can be embodied as a softwarethat enables multicast networking and installed in a home networkgateway and a router of a non-multicast network.

The virtual multicast router of the present invention sets up a datatransmission path by performing tunneling in various methods, such as IPtunneling, UDP tunneling, and TCP tunneling according to the environmentof its sub-network, and it also transmits encapsulated data to thevirtual multicast router of the sub-network or multicast agent indiverse data transmission methods, such as IP multicast transmission,and UDP/TCP unicast transmission.

For example, tunneling from the virtual multicast router 335 to thevirtual multicast router of a non-multicast network or the multicastagent can be IP tunneling, UDP tunneling, or TCP tunneling, and the datatransmission method-through a path set up by this tunneling can be theIP multicast transmission, or UDP/TCP unicast transmission.

Meanwhile, in case where a multicast-supporting network is connected tothe non-multicast backbone network 320 through the virtual multicastrouter of the present invention, the virtual multicast router sets up adata path with the virtual multicast router 305 on the multicast sourcenetwork 300 by performing the dynamic tunneling to form a virtualmulticast network, and the router and clients on themulticast-supporting network can receive data in the IP multicast datatransmission method from the virtual multicast router, which isconnected with the backbone network, and has a path set up with thevirtual multicast router 305 by performing dynamic tunneling.

Static tunneling performed by the tunneling unit 415 is a method usedbetween the multicast router 307 and the virtual multicast routers 305,335, 345, or 351. As described above, the multicast router 307 on themulticast source network 300 and the virtual multicast router 335 on theADSL network 330 transmits and receives multicast data through thestatic tunneling. As a static tunneling, the IP tunneling method can beused. For performing the static tunneling, tunneling setup data arestored in the configuration file of the routers 307 and 335 in advance.

Also, dynamic tunneling performed by the tunneling unit 415 is a methodused between a virtual multicast router and a virtual multicastrouter—or example, between the virtual multicast routers 305 and 345, orbetween the virtual multicast routers 345 and 351. In the dynamictunneling, the IP tunneling method can be used, too, just as the statictunneling, and UDP tunneling and TCP tunneling methods can be used aswell. Different from static tunneling, the dynamic tunneling isperformed dynamically on the request of the virtual multicast router,and the removal of the tunneling is carried out dynamically, too.

Meanwhile, the virtual multicast routers 305, 335, 345, or 351 performdifferent functions depending on the presence of a multicast router onthe sub-network it belongs to. That is, the virtual multicast routers305, 335, 345, and 351 examine if there is a multicast router on thesub-network it belongs to, and if there is a multicast router, it doesnot perform the role of a multicast router, but simply performs the roleof a multicast repeater. If there is no multicast router aftersearching, it performs the roles of a multicast router and multicastrepeater simultaneously. Therefore, in accordance with the firstembodiment of the present embodiment, the virtual multicast routers 305,335, 345, and 351 are activated to operate as the multicast routing unit411 and/or multicast repeater 413, which will be described later,selectively depending on the environment of the sub-network it belongsto.

The multicast routing unit 411 that performs as a multicast routerroutes multicast data, using standard multicast routing protocol, whichis Protocol Independent Multicast-Sparse Mode (PIM-SM), Distance VectorMulticast Routing Protocol (DVMRP), or Source Specific Multicast (SSM).

The multicast repeater 413 receives multicast data and transmits them tothe clients 339, 349, 353, and 359 with a network in the non-multicastnetwork environments 330, 340, and 350. The multicast repeater 413administrates the joining and secession to and from a particularmulticast group.

Membership information is registered, when the clients 339, 349, 353 and359 transmit the multicast address and port number of a multicast groupthey want to join, after the virtual multicast router or multicast agentsets up a path with another virtual multicast router through dynamictunneling. The membership information includes the addresses of theclients in the multicast group, port number of the multicast group, andaddress of a multicast agent or virtual multicast router registered inthe multicast group.

When the clients 339, 349, 353, and 359 are registered in a particularmulticast group, and then the virtual multicast routers 305, 335, 345,and 351 receive multicast data to be transmitted to the clients 339,349, 353, and 359 of the multicast group, the received data areencapsulated and transmitted to the multicast agent mounted on theclients 339, 349, 353, and 359 of the multicast group, or anothervirtual multicast router.

In case where the network including the virtual multicast routers 305,335, 345, and 351 supports broadcasting or unicasting only, the Internetgroup management protocol (IGMP) snooping of the L2 switch can beemulated.

IGMP Snooping is a well-known technology that makes a switch transmitmulticast traffics intelligently. Based on the IGMP query and reportmessage, a switch transmits traffics only to the ports that haverequested multicast. This method prevents the switch from broadcasttraffics and affecting the performance of the network. IGMP needs arouter that can figure out if a multicast group exists on thesub-network, and administrates the membership of the group.

The multicast agent 423 is a system mounted on the client to receivemulticast data. It includes a dynamic tunneling unit 427 for performingdynamic tunneling to set up a path with the multicast data receivingunit 425 and thus receive multicast data on a non-multicast network 330,340, or 350.

The dynamic tunneling unit 427 requires the IP address of a virtualmulticast router nearest to the multicast administration server 303. Ifthe IP address of the nearest virtual multicast router is informed bythe multicast administration server 303, the dynamic tunneling unit 427sets up a path by performing dynamic tunneling. Otherwise, it brings theIP addresses of all virtual multicast routers, and then searches for thenearest virtual multicast router based on the IP addresses. The dynamictunneling unit 427 calculates the hop counters of the IP addresses, andsearches for the nearest virtual multicast router. That is, a virtualmulticast router with an IP address having the smallest hop counter isconsidered to be in the nearest location.

After finding the nearest virtual multicast router, the multicast agent423 requests it to join the multicast group. If the request is accepted,the multicast agent 423 can receive multicast data from the moment. Whenthe multicast agent 423 receives multicast data through the multicastdata receiving unit 425, it resets Time to Live (TTL) at 0, using the IPmulticast inside the client, and performs multicast again, and then themulticast application program receives multicast data.

FIG. 5 is a transaction flow chart describing the dynamic tunnelingbetween the multicast routers in accordance with the first embodiment ofthe present invention. The process of dynamic tunneling of each virtualmulticast router 305, 335, 345, or 351 is as follows.

At step S501, a first virtual multicast router 501 requests data of thenearest virtual multicast router, i.e., its IP address, to the multicastadministration server 303, the IP address of the first virtual multicastroutes 501 already registered in the multicast administration server303. At step S503, the multicast administration server 303 searches thevirtual multicast router caching data stored in the database 403, andthen at step S505, if there are data on the nearest multicast router, ittransmits the data, otherwise, transmits data on all virtual multicastrouters.

At step S507, the first virtual multicast router 501 that has receivedthe router data from the multicast administration server 303 determineswhether the received data is on the nearest virtual multicast router,that is, whether the data is about one single virtual multicast router,and at step S515, if the router data proves to be the nearest virtualmulticast router, it requests dynamic tunneling to the nearest virtualmulticast router, i.e., a second virtual multicast router 503. In casewhere the received data at the step S507 are not data on one virtualmulticast router, but on all virtual multicast routers, at step S509, itacquires data on the nearest virtual multicast router from the receiveddata on all virtual multicast routers by calculating hop counter, asdescribed above.

The data on the nearest virtual multicast router is obtained from theabove received data on all virtual multicast routers by calculating hopcounter, because the first virtual multicast router 501 has nevertransmitted the data on the nearest virtual multicast router to themulticast administration server 303 before. Therefore, once the firstmulticast router 501 calculates hop counters and obtains data on thenearest virtual multicast router 503, at step S511, it transmits thedata on the nearest virtual multicast router to the multicastadministration server 303, and at step S513, the multicastadministration server 303 updates the caching table of virtual multicastrouter IP addresses stored in the database 403. Later on, if the data onthe nearest virtual multicast router is requested again from the firstvirtual multicast router 501, the multicast administration server 303transmits the data on the nearest virtual multicast router based on theupdated caching table.

Meanwhile, at step S515, the first virtual multicast router 501 that hasobtained data on the nearest virtual multicast router 503 at the stepS509 requests dynamic tunneling to the second virtual multicast router503. The request for dynamic tunneling includes the IP address of thefirst virtual multicast router 501 as a destination address of themulticast data, which is used to encapsulate the multicast data.

At step S517, the second virtual multicast router 503 performs settingfor dynamic tunneling, taking its IP address as a transmission source(tunnel source) address of encapsulated multicast data, and the IPaddress of the first virtual multicast router 501 as the destination(tunnel destination) address of the encapsulated multicast data. Then,at step S519, if the acknowledgement for the dynamic tunneling requestis transmitted to the first virtual multicast router 501, at step S521,a path is set up between the first virtual multicast router 501 and thesecond virtual multicast router 503 by performing dynamic tunneling.That is, going through the flow illustrated in FIG. 5, the virtualmulticast router performs dynamic tunneling with the nearest virtualmulticast router among other virtual multicast routers, and a multicasttree is formed by the multicast tree forming algorithm of the PIM-SM,DVMRP, or SSM.

FIG. 6 is a transaction flow chart describing the multicast datareception of a multicast agent in accordance with the first embodimentof the present invention. It is assumed that a path is already set upbetween the virtual multicast router 501 of the network 330, 340, or350, to which the multicast agent 423 belongs and the multicast sourceserver 301, and this assumption can be expected, from the logic flowillustrated in FIG. 5 sufficiently.

At step S601, when the IP address of the multicast agent 423 isregistered in the multicast administration server 303, the multicastagent 423 requests the multicast administration server 303 for data onthe nearest virtual multicast router, that is, IP address. At step S603,the multicast administration server 303 searches virtual multicastrouter caching data stored in the database 403, and if there isregistered data on the nearest multicast router, transmits the data, andotherwise, if there is no registered data on it, at step S605, themulticast administration server 303 transmits data on all virtualmulticast routers.

At step S607, the multicast agent 423 which has received data on arouter from the multicast administration server 303 determines whetherthe received data are data on the nearest virtual multicast router, thatis, the data is about one virtual multicast router, if the data is aboutthe nearest virtual multicast router, at step S615, it requests thenearest virtual multicast router, for example a virtual multicast router501, to join the multicast group.

Otherwise, if the data received at the step S607 are about all virtualmulticast routers, at step S609, it obtains data on the nearest virtualmulticast router from the received data on all virtual multicast routeraddresses. By calculating hop counters of all the virtual multicastrouters, the data on the nearest virtual multicast router can beobtained.

Since the multicast agent 423 has not transmitted any data on thenearest virtual multicast router to the multicast administration server303 before, it is possible for the multicast agent 423 to obtain data onthe nearest virtual multicast router by calculating the hop counters.Accordingly, at step S611, once the-multicast agent obtains the data onthe nearest virtual multicast router 501, it transmits the data to themulticast administration server 303. Then, at step S613, the multicastadministration server 303 updates the virtual multicast router IPaddress caching table, which is stored in the database 403. Later on,when the IP address of the nearest virtual multicast router is requestedagain by the multicast agent 423, the multicast administration server303 transmits the data on the nearest virtual multicast router 501 basedon the updated caching table.

Meanwhile, at step S615, the multicast agent 423 that obtained the dataon the nearest virtual multicast router 501 requests the multicast agent423 to join the multicast group through the nearest virtual multicastrouter 501. The request for joining a multicast group is a requestasking for dynamic tunneling, and it includes the IP address of themulticast agent 423 as the address of the destination of multicast data,which is used to encapsulate the multicast data.

At step S617, in response to the request for joining the multicastgroup, the virtual multicast router 501 updates the group data with itsIP address as a transmission source (dynamic tunnel source) address ofthe encapsulated multicast data and the IP address of the multicastagent 423 as the destination address of the encapsulated multicast data,and, at step S619, it transmits acknowledgement of the multicast grouprequest. Then, at step S621, a path between the multicast agent 423 andthe multicast router is set up.

In short, when the multicast agent is registered in .the multicastgroup, and when data are transmitted from the multicast source server301, the virtual multicast router 501 checks out the address of themulticast data and transmits the multicast data to the multicast agent423 registered on the multicast group. The multicast agent 423 that hasreceived the multicast data from the virtual multicast router 501removes the header, which contains the tunnel source address and thetunnel destination address, from the IP encapsulated multicast data, andperform re-multicasting to a multicast data application program loadedon a client.

FIG. 7 is a diagram showing the-process of a multicast agent or avirtual multicast router searching for the nearest virtual multicastrouter in accordance with a second embodiment of the present invention.

In FIGS. 5 and 6, the multicast agent 423 or the first virtual multicastrouter 501 determines if the router data transmitted from the multicastadministration server 303 is on the nearest virtual multicast router atstep S507 or S607. If the received data prove to be data on all virtualmulticast routers, at step S509 or S609, their hop counters arecalculated from the received data on all virtual multicast routeraddresses and the data on the nearest virtual multicast router areobtained.

FIG. 7 shows another embodiment for obtaining data on the nearestvirtual multicast router data not by calculating hop counters asdescribed in FIGS. 5 and 6, but by calculating round trip time (RTT).

First, the multicast source server 301 calculates the RTT values betweenthe multicast source server 301 and the virtual multicast routers 501and 701 a to 701 n by transmitting a message to each of the virtualmulticast routers 501 and 701 a to 701 n periodically, and then ittransmits the maximum RTT value and the average RTT value of thecalculated RTT values to the virtual multicast routers 501 and 701 a to701 n. Accordingly, the multicast source server 301 and the respectivevirtual multicast routers 501 and 701 a to 701 n are always aware of themaximum RTT value and the average RTT value of the virtual multicastrouters.

In this circumstance, at step S701, if the multicast agent 423 or thefirst virtual multicast router 501 requests the multicast source server301 for the data on the nearest high-ranked virtual multicast router, atstep S703, the multicast source server 301 transmits to the othervirtual multicast routers 701 a to 701 n a command to send the data tothe multicast agent 423 or the first virtual multicast router 501 in aparticular time period.

At step S705, each of the virtual multicast routers 701 a to 701 n,which has received the data transmission command, waits for a timesubtracting the average RTT value from the maximum RTT value based onthe time point when the data transmission command is received, andtransmits the data to the multicast agent 423 or the first multicastrouter 501.

At step S707, the multicast agent 423 or the first multicast router 501recognizes the virtual multicast router that has sent the data arrivingfirst among the data transmitted from each of the virtual multicastrouters 701 a to 701 n as the nearest virtual multicast router and thusobtains the data on the nearest virtual multicast router.

At step S709, the subsequent process is the same as the steps S513through S521 or the steps S613 through S621 of FIG. 5 or 6.

The method of the present invention described can be embodied as aprogram and recorded in a computer-readable recording medium, such asCD-ROMs, RAMs, ROMs, floppy disks, hard disks, and optical magneticdisks.

This invention, which is a method and system for virtual multicastnetworking, can provide multicast application service such as Internetbroadcasting effectively even in a network environment that does notsupport the multicasting function. The dynamic tunneling technologybetween the virtual multicast routers solves the problem of aconventional static tunneling that a user should set up the tunneling byhimself and the problem in multicast networking when a user uses adynamic IP.

The application of multicast service will be enhanced due to thisdynamic tunneling technology, because a multicast network can beestablished without performing any set up process to the existingnetwork environment.

Later on, when home networking is generalized, it is also possible touse the multicast technology at an end terminal, too, and providevarious services by applying the multicast technology to the homegateway.

While the present invention has been described with respect to certainpreferred embodiments, it will be apparent to those skilled in the artthat various changes and modifications may be made without departingfrom the scope of the invention as defined in the following claims.

1. A virtual multicast networking system including a client and amulticast source network having a multicast source server, for providinga virtual multicast network in a network environment wherein anon-multicast network that does not support a multicast function isconnected through a backbone network, the virtual multicast networkingsystem comprising: a virtual multicast router system included in thenon-multicast network, for transmitting or relaying encapsulatedmulticast data through tunneling with a multicast router or the nearestvirtual multicast router system; a multicast agent system loaded on theclient, for receiving the encapsulated multicast data through dynamictunneling with the nearest virtual multicast router system, extractingthe multicast data transmitted by the multicast source server from theencapsulated multicast data, and transmitting the extracted multicastdata to an application program loaded on the client; and a multicastadministration system included in the multicast source network, formanaging the IP addresses of the virtual multicast router system, andtransmitting the address information of the virtual multicast routersystem to the virtual multicast router system or the multicast agentsystem.
 2. The system as recited in claim 1, wherein the virtualmulticast router system includes: a tunneling unit for transmitting adynamic tunneling request including its IP address to the nearestvirtual multicast router system, and setting up a tunnel source addressand a tunnel destination address for dynamic tunneling based on thedynamic tunneling request from the nearest virtual multicast routersystem or the multicast agent system; and a multicast relaying unit formanaging the membership information of the multicast group, andtransmitting the encapsulated multicast data, which are transmitted fromthe nearest virtual multicast router system through dynamic tunneling,to the client or virtual multicast router system included in themembership information of the multicast group through a multicast routerincluded in a sub-network of the non-multicast network, to which thevirtual multicast router system belongs.
 3. The system as recited inclaim 2, wherein the virtual multicast router system further includes amulticast routing unit for routing the encapsulated multicast data, ifthere is no multicast router or virtual multicast router system on thenon-multicast network.
 4. The system as recited in claim 3, wherein themulticast agent system includes: a dynamic tunneling unit fortransmitting a multicast group joining request including the IP addressof the multicast agent system to the virtual multicast router system;and a multicast data receiving unit for receiving encapsulated multicastdata from the virtual multicast router system, removing the header thatincludes the tunnel source address and the tunnel destination addressfrom the received data, and transmitting the multicast data, which istransmitted from the multicast source server, to an application programof the client.
 5. The system as recited in claim 4, wherein themulticast data receiving unit transmits the multicast data transmittedfrom the multicast source server to the application program of theclient by setting time to live (TTL) at zero using IP multicast.
 6. Thesystem as recited in claim 5, wherein the multicast administrationsystem includes: a database for caching and storing in a table the IPaddress information of all virtual multicast router systems in thenetwork environment; and a virtual multicast router data administrationunit for searching the database and transmitting the data on the nearestvirtual multicast router to the tunneling unit or the dynamic tunnelingunit, upon a request for the address information of the nearest virtualmulticast router system from the tunneling unit or the dynamic tunnelingunit.
 7. The system as recited in claim 6, wherein the virtual multicastrouter data administration unit searches the database, upon the requestfor the nearest virtual multicast router system data, and if there is nodata on the nearest virtual multicast router, transmitting the addressinformation of all virtual multicast router systems stored in the tableto the tunneling unit or the dynamic tunneling unit.
 8. The system asrecited in claim 7, wherein the tunneling unit or the dynamic tunnelingunit obtains the address information of the nearest virtual multicastrouter system by calculating hop counters based on the addressinformation of all virtual multicast router systems transmitted from thevirtual multicast router data administration unit, and transmits theobtained address information of the nearest virtual multicast routersystem to the virtual multicast router data administration unit.
 9. Thesystem as recited in claim 6, wherein the virtual multicast router dataadministration unit searches the database upon the request for data onthe nearest virtual multicast router system, and if there is noinformation on the nearest virtual multicast router, transmits to allthe virtual multicast router systems in the network environment acommand to send data for checking out distance to the tunneling unit orthe dynamic tunneling unit at a predetermined time point.
 10. The systemas recited in claim 9, wherein the virtual multicast router dataadministration unit periodically obtains each average round trip time(RTT) and the maximum RTT of all the virtual multicast router systems inthe network environment, and transmits the average RTT and the maximumRTT to all the virtual multicast router systems in the networkenvironment; and wherein the predetermined time point is a timesubtracting the average RTT value from the maximum RTT value based onthe time point when the command is received is passed.
 11. The system asrecited in claim 10, wherein the tunneling unit or the dynamic tunnelingunit obtains the address information of the nearest virtual multicastrouter system based on the data that has arrived first among other datasent from all the virtual multicast router systems in the networkenvironment to check out the distance, and transmits the obtainedaddress information of the nearest virtual multicast router system tothe virtual multicast router data administration unit.
 12. The system asrecited in claim 8, wherein the virtual multicast router dataadministration unit further performs the function of updating the IPaddress information of the virtual multicast router systems, which arestored in the database in the form of a table, based on the addressinformation of the nearest virtual multicast router system transmittedfrom the tunneling unit or the dynamic tunneling unit.
 13. The system asrecited in claim 12, wherein the virtual multicast router systemperforms tunneling and transmits the encapsulated multicast data basedon the network environment, to which the multicast agent system or thenearest virtual multicast router system that receives the encapsulatedmulticast data transmitted from the virtual multicast router systembelongs.
 14. The system as recited in claim 13, wherein the virtualmulticast router system emulates the Internet group management protocol(IGMP) snooping function of L2 switch, in case where the non-multicastnetwork supports a broadcast or unicast function only.
 15. The system asrecited in claim 2, wherein the backbone network does not support themulticast function, and the multicast source network includes thevirtual multicast router system.
 16. The system as recited in claim 2,wherein the backbone network supports the multicasting function, whereinthe multicast source network includes a multicast router, wherein thetunneling unit has the tunnel source address and the tunnel destinationaddress set up between the virtual multicast router system and themulticast router through static tunneling, and wherein the multicastrelaying unit transmits, the encapsulated multicast data, which aretransmitted from the multicast router system through static tunneling,to the client or virtual multicast router system in the membershipinformation of the multicast group through a multicast router on asub-network of the non-multicast network, to which the virtual multicastrouter system belongs.
 17. A method for performing virtual multicastnetworking in a virtual multicast networking system, the methodcomprising the steps of: a) at a virtual multicast router systemincluded in the non-multicast network, transmitting or relayingencapsulated multicast data through tunneling with a multicast router orthe nearest virtual multicast router system; b) at a multicast agentsystem loaded on the client, receiving the encapsulated multicast datathrough dynamic tunneling with the nearest virtual multicast routersystem, extracting the multicast data transmitted from the multicastsource server from the received encapsulated multicast data, andtransmitting the extracted multicast data to an application programloaded on the client; and c) at a multicast administration systemincluded in the multicast source network, managing the IP addresses ofthe virtual multicast router system, and transmitting the addressinformation of the virtual multicast router system to the virtualmulticast router system or the multicast agent system.
 18. The method asrecited in claim 17, wherein the step a) includes the steps of: a1) at atunneling unit included in the virtual multicast router system,transmitting a dynamic tunneling request including the IP address of thevirtual multicast router system to the nearest virtual multicast routersystem; a2) at the tunneling unit, setting up the tunnel source addressand the tunnel destination address for dynamic tunneling based on thedynamic tunneling request transmitted from the nearest virtual multicastrouter system or the multicast agent system; and a3) at a multicastrelaying unit included in the virtual multicast router system, managingthe membership information of the multicast group, and transmitting theencapsulated multicast data, which are transmitted from the nearestvirtual multicast router system through dynamic tunneling, to the clientor virtual multicast router system in the membership information of themulticast group through a multicast router on a sub-network of thenon-multicast network, to which the virtual multicast router systembelongs.
 19. The method as recited in claim 18, wherein the step a)further comprises the step of: a4) the multicast routing unit includedin the virtual multicast router system, routing the encapsulatedmulticast data, if there is no multicast router or virtual multicastrouter system on the non-multicast network.
 20. The method as recited inclaim 19, wherein the step b) comprises the steps of: b1) at a dynamictunneling unit included in the multicast agent system, transmitting amulticast group joining request including the EP address of themulticast agent system to the virtual multicast router system; and b2)at a multicast data receiving unit included in the multicast agentsystem, receiving the encapsulated multicast data from the virtualmulticast router system, removing the header that includes the tunnelsource address and the tunnel destination address from the receiveddata, and transmitting the multicast data, which is transmitted from themulticast source server, to an application program of the client. 21.The method as recited in claim 20, wherein in the step b2), themulticast data transmitted from the multicast source server aretransmitted to the application program of the client by setting time tolive (TTL) at zero using IP multicast.
 22. The method as recited inclaim 21, wherein the step c) includes the steps of: c1) caching the IPaddress information of all virtual multicast router systems in thenetwork environment and storing the cached data in the database in theform of a table; and c2) at the virtual multicast router dataadministration unit, searching the database and transmitting the data onthe nearest virtual multicast router to the tunneling unit or thedynamic tunneling unit, upon a request for data on the nearest virtualmulticast router system from the tunneling unit or the dynamic tunnelingunit.
 23. The method as recited in claim 22, wherein the step c) furtherincludes the step of: c3) at the virtual multicast router dataadministration unit, searching the database upon the request for data onthe nearest virtual multicast router system, and if there is noinformation on the nearest virtual multicast router, transmitting theaddress information of all virtual multicast router systems stored inthe table to the tunneling unit or the dynamic tunneling unit.
 24. Themethod as recited in claim 23, wherein the step a2) further includes thesteps of: a2-1) at the tunneling unit, obtaining the address informationof the nearest virtual multicast router system by calculating hopcounters based on the address information of all virtual multicastrouter systems received by the process of the step c3); and a2-2) at thetunneling unit, transmitting the obtained address information of thenearest virtual multicast router system to the virtual multicast routerdata administration unit, and wherein the step b1) further includes thesteps of: b1-1) at the dynamic tunneling unit, obtaining the addressinformation of the nearest virtual multicast router system bycalculating hop counters based on the address information of all virtualmulticast router systems received by the process of the step c3); andb1-2) at the dynamic tunneling unit, transmitting the obtained addressinformation of the nearest virtual multicast router system to thevirtual multicast router data administration unit.
 25. The method asrecited in claim 22, wherein the step c) further includes the step of:c4) the virtual multicast router data administration unit, searching thedatabase upon the request for information on the nearest virtualmulticast router system, and if there is no information on the nearestvirtual multicast router, transmitting to all the virtual multicastrouter systems in the network environment a command to send data forchecking out distance to the tunneling unit or the dynamic tunnelingunit at a predetermined time point.
 26. The method as recited in claim25, wherein the step c) further includes the step of: c5) at the virtualmulticast router data administration unit, periodically obtaining theaverage round trip time (RTT) and the maximum RTT of all the virtualmulticast router systems in the network environment, and transmittingthe average RTT and the maximum RTT to all the virtual multicast routersystems included in the network environment, and wherein thepredetermined time point is a time subtracting the average RTT valuefrom the maximum RTT value based on the time point when the command isreceived is passed.
 27. The method as recited in claim 26, wherein thestep a2) further includes the steps of: a2-1) at the tunneling unit,obtaining the address information of the nearest virtual multicastrouter system based on the data that has arrived first among other datatransmitted from all the virtual multicast router systems included inthe network environment to check out the distance; and a2-2) at thetunneling unit, transmitting the obtained address information of thenearest virtual multicast router system to the virtual multicast routerdata administration unit, and wherein the step b1) further includes thesteps of: b1-1) at the dynamic tunneling unit, obtaining the addressinformation of the nearest virtual multicast router system based on thedata that has arrived first among other data transmitted from all thevirtual multicast router systems included in the network environment tocheck out the distance; and b1-2) at the dynamic tunneling unit,transmitting the obtained address information of the nearest virtualmulticast router system to the virtual multicast router dataadministration unit.
 28. The method as recited in claim 24, wherein thestep c) further comprises the step of: c6) at the virtual multicastrouter data administration unit, updating the IP address information ofthe virtual multicast router systems, which are stored in the databasein the form of a table, based on the address information of the nearestvirtual multicast router system transmitted from the tunneling unit orthe dynamic tunneling unit.
 29. The method as recited in claim 28,wherein in the step a), the tunneling is performed based on the networkenvironment, to which the multicast agent system or the nearest virtualmulticast router system that receives the encapsulated multicast datatransmitted from the virtual multicast router system belongs, and theencapsulated multicast data are transmitted.
 30. The method as recitedin claim 29, wherein in the step a), the virtual multicast router systememulates the Internet group management protocol (IGMP) snooping functionof L2 switch, in case where the non-multicast network supports abroadcast or unicast function.
 31. The method as recited in claim 18,wherein the backbone network does not support the multicasting function,and the multicast source network includes the virtual multicast routersystem.
 32. The method as recited in claim 18, wherein the backbonenetwork supports the multicasting function, wherein the multicast sourcenetwork includes a multicast router, wherein the tunneling unit hastunnel source address and tunnel destination address set up between thevirtual multicast router system and the multicast router through statictunneling, and wherein the step a3) includes the step of: a3-1) at themulticast relaying unit, transmitting the encapsulated multicast data,which are transmitted from the multicast router system through statictunneling, to the client or virtual multicast router system in themembership information of the multicast group through a multicast routerincluded in a sub-network of the non-multicast network, to which thevirtual multicast router system belongs.
 33. A virtual multicastnetworking system including a client and a multicast source networkhaving a multicast source server, for providing a virtual multicastnetwork in a network environment wherein a non-multicast network thatdoes not support a multicast function is connected through a backbonenetwork, the virtual multicast networking system comprising: a virtualmulticast router system included in the non-multicast network, fortransmitting or relaying encapsulated multicast data through tunnelingwith a multicast router or the nearest virtual multicast router system;and a multicast agent system loaded on the client, for receiving theencapsulated multicast data through dynamic tunneling with the nearestvirtual multicast router system, extracting the multicast datatransmitted from the multicast source server from the encapsulatedmulticast data, and transmitting the extracted multicast data to anapplication program loaded on the client.